The cloud computing environment is an enhancement to the predecessor grid environment, whereby multiple grids and other computation resources may be further abstracted by a cloud layer, thus making disparate devices appear to an end-user as a single pool of seamless resources. These resources may include such things as physical or logical compute engines, servers and devices, device memory, storage devices, etc.
Consumers of cloud computing resources have differing needs and expectations regarding the availability of computer resources. In some cases, the consumer's expectation is a best effort attempt that provides an inexpensive option to enhance total capacity to cover peaks or other situations. In some cases a lack of extra capacity will not be highly disruptive, it may be less optimal. In other cases, though the consumer is using cloud resources for handling peak demand or critical requirements, there is a fundamental expectation and need to be able to rely on that capacity when it is needed (as if a flexible use ‘reservation’ is in place). In the latter case, the consumer usually opts to pay additional fees to assure capacity on-demand to avoid disruptive consequences (or, in other cases, to take advantage of related pricing discounts due to the up-front financial commitment). Providing capacity assurance to a consumer creates a capacity planning challenge for the cloud computing provider. The upfront fee is generally not designed to cover the cost of reserving hardware for the consumer since that would not be economical for the consumer. Therefore, the cloud provider needs to allow that capacity to be used elsewhere, while maintaining a reasonable ability to satisfy the outstanding ‘reservations’.